<?php
#Israel Jone - computingworld.info
#conex�o com o banco de dados:
$servidor = "localhost";
$usuario = "root";
$senha = "";
$banco = "odp";
$conexao = mysql_connect($servidor, $usuario, $senha) or die ("Não foi possivel efetuar a conexão com o banco de dados");
$selecionar_banco = mysql_select_db($banco, $conexao) or die ("Não foi possivel selecionar o banco de dados");

#no formulario passamos um campo oculto com nome e valor upload. essa verifica��o serve para n�o executar a fun��o de upload toda ves que carregar a p�gina
if(isset($_POST["upload"])){
	$legenda = $_POST['legenda'];//descri��o da imagen que sera gravada no banco
	$tipo_permitido = array('jpg', 'jpeg', 'jpe', 'jfif',  'gif', 'png', 'tif', 'tiff', 'dib', 'bmp');//tipos de imagens OU arquivo permitidos. se quiser mais tipos de imagens ou outros arquivos basta colocar a exetens�o no array
	$tipo_arquivo = strtolower(array_pop(explode('.', $_FILES['arquivo']['name'])));//covertemos a string para minusculo depois pegamos a ultima posi��o do array que sera gerado pela fun��o explode que vai pegar o nome da imagem antes do . e depois do . .posi��o [0] e [1]
	$caminho_imagen = "upload/".$nome_final =  md5(time()).".".$tipo_arquivo;//aqui definimos qual sera a PASTA que a imagem sera salva depois criamos um nome com a fun��o de encodifica��o md5 que codificara a fun��o time que pega os segundos desde a era unix 1970
	$pixels_imagen = getimagesize($_FILES['arquivo']['tmp_name']);//atrav�s da fun��o getimagesize da biblioteca gd pegamos a resolu��o da imagem
	$tamanho_imagen  = $_FILES['arquivo']['size'];//pegamos o tamanho da imagem em bytes

	if(array_search($tipo_arquivo, $tipo_permitido) === false)//verificamos se no array com as extens�es permitidas tem a extens�o do arquivo emviado pelo formulario
		echo "<script>alert('Tipo de arquivo nao permitido, este arquivo e ".$tipo_arquivo."')</script>";
	elseif($pixels_imagen[0] > 1000)//no array da $pixels_imagen a posi��o [0] e a largura
		echo "<script>alert('A imagen deve ter largura menor ou igual a 400px, esta imagen possui ".$pixels_imagen[0]."px')</script>";
	elseif($pixels_imagen[1] > 1000)//no array da $pixels_imagen a posi��o [1] e a altura
		echo "<script>alert('A imagen deve ter altura menor ou igual a 300px, esta imagen possui ".$pixels_imagen[1]."')</script>";
	elseif($tamanho_imagen > 512*1024*2)//definimos o tamanho da imagem para 1048576 bytes (1024kb)
	   	echo "<script>alert('A imagen nao pode ter mais que 1024 KB de tamanho, esta imagen tem ".array_shift(explode('.', $tamanho_imagen / 1024))." KB')</script>"; //pegamos a primeira posi��o do array que vai ser os bytes da imagem dividido por 1024, apenas para arredondar o resultado
	else{
		if(move_uploaded_file($_FILES['arquivo']['tmp_name'], $caminho_imagen)){	//movemos a imagem para a pasta e se tudo der certo executa a query e inseri no banco o nome da imagem e o campo descri��o	
            $sql_banner = mysql_query("INSERT INTO foto (legenda, arquivo, anuncio_id) VALUES ('$legenda', '$nome_final', '".$_GET['id_anun']."')") or die (mysql_error());
			echo "<script>alert('Imagen enviada com sucesso')</script>";
		}else
			echo "<script>alert('Erro ao enviar as imagen')</script>";
	}
}

?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Sistema completo de upload de imagen</title>
</head>

<body>
<?php 

$sql_imagens = mysql_query("SELECT * FROM foto");//uma consulta apenas para mostrar as imagens
while($linha_imagens = mysql_fetch_array($sql_imagens)){
	?>
	<h4><?php echo $linha_imagens['legenda']; ?></h4><br>
	<img src="upload/<?php echo $linha_imagens['arquivo'] ?>" width="150" border="0">
	<br>
	<?php
} ?>
<br>
<br>
<form name="upload" method="post" enctype="multipart/form-data" action="#"><!--relembrando, o form deve ser multipart/form-data -->
Imagen:
<input type="file" name="arquivo"/>
Descri��o da imagen:
<input type="text" name="legenda"/>
<input type="submit" value="Enviar Imagen"/>
<input type="hidden" name="upload"/>
</form>
</body>
</html>
